/*
 * libEscribirInforme.c
 *
 *  Created on: 12/06/2012
 *      Author: utnso
 */

#include "libEscribirInforme.h"

static int32_t fp = -1;

int8_t iniciarInforme(char* path) {
	if (fp == -1) {
		//NO SE CUENTA CON INFORMACION DEL ARCHIVO
		fp = open(path, O_WRONLY | O_CREAT | O_TRUNC, 0600);
		if (fp == -1) {
			return -1;
		} else {
			return 0;
		}
	} else {
		return 0;
	}
}

void informarTemplate(char* template, ...) {
	if (fp != -1) {
		va_list arg;
		va_start(arg, template);
		char infoAux[MAX_LINEA_INFORME];
		vsprintf(infoAux, template, arg);
		informarCadena(infoAux);
	}
}

void informarCadena( char* cadena) {
	//LA CADENA DEBE TERMINAR EN \n Y NO DEBE CONTENER \0
	if (fp != -1) {
		write(fp, cadena, strlen(cadena));
	}
}

void cerrarInforme(void) {
	close(fp);
	fp = -1;
}
